package org.jeecg.modules.order.entity;

import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * @Description: 订单信息
 * @Author: jeecg-boot
 * @Date:   2023-03-08
 * @Version: V1.0
 */
@Data
@TableName("b_order_info")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="b_order_info对象", description="订单信息")
public class BOrderInfo implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    
    /**订单名称*/
    @Excel(name = "订单名称", width = 15)
    @ApiModelProperty(value = "订单名称")
    private String orderName;
    
    /**订单金额*/
    @Excel(name = "订单金额", width = 15)
    @ApiModelProperty(value = "订单金额")
    private BigDecimal orderAmount;
    
    /**抽成比例*/
    @Excel(name = "抽成比例", width = 15)
    @ApiModelProperty(value = "抽成比例")
    private BigDecimal commissionRate;
    
    /**程序员分成金额*/
    @Excel(name = "程序员分成金额", width = 15)
    @ApiModelProperty(value = "程序员分成金额")
    private BigDecimal programmerAmount;
    
    /**本单利润*/
    @Excel(name = "本单利润", width = 15)
    @ApiModelProperty(value = "本单利润")
    private BigDecimal profit;
    
    /**订单类型*/
    @Excel(name = "订单类型", width = 15, dicCode = "order_type")
    @ApiModelProperty(value = "订单类型(01:毕设全包；02：单程序；03：单论文；04：二开；05：部署)")
    private String orderType;
    
    /**下单日期*/
    @Excel(name = "下单日期", width = 20, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "下单日期")
    private Date orderDate;
    
    /**交付日期*/
    @Excel(name = "交付日期", width = 20, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "交付日期")
    private Date deliveryDate;
    
    /**售后截止日期*/
    @Excel(name = "售后截止日期", width = 20, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "售后截止日期")
    private Date afterSaleEndDate;
    
    /**订单进度*/
    @Excel(name = "订单进度", width = 15, dicCode = "order_progress")
    @ApiModelProperty(value = "订单进度（01：首款已支付；02：首款已到账；03：尾款已支付；04：尾款已到账；05：售后中；06：完成）")
    private String orderProgress;
    
    /**程序员id*/
    @Excel(name = "程序员", width = 15)
    @ApiModelProperty(value = "程序员id")
    private String programmerId;
    
    /**客户名称*/
    @Excel(name = "客户名称", width = 15)
    @ApiModelProperty(value = "客户名称")
    private String customerName;
    
    /**客户微信*/
    @Excel(name = "客户微信", width = 15)
    @ApiModelProperty(value = "客户微信")
    private String customerWechat;
    
    /**订单备注*/
    @Excel(name = "订单备注", width = 15)
    @ApiModelProperty(value = "订单备注")
    private String orderRemark;
    
    /**逻辑删除标识*/
    @TableLogic(value = "0", delval = "1")
    @ApiModelProperty(value = "逻辑删除标识(0-正常,1-已删除)")
    private String delFlag = "0";
    
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
} 